System, Method, and Software for Object-Based Cloud Computing Management

ABSTRACT

A method for managing cloud computing systems includes establishing a connection between a cloud computing interface and cloud computing systems. Each of the cloud computing systems includes computing resources accessible by a proprietary interface. The cloud computing interface includes object methods that abstract the proprietary interface of each of the cloud computing systems. The method further includes receiving a request to perform an operation on one or more of the cloud computing systems. The method further includes provisioning at least one object method to implement the request.

RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of the priority of U.S. Provisional Application No. 61/114,876 filed Nov. 14, 2008, entitled “System, Method, and Software for Object-Based Cloud Computing Management and Reference Architecture.”

TECHNICAL FIELD

The present invention relates generally to computer management, and more particularly to a system, method, and software for object-based cloud computing management.

BACKGROUND

Cloud computing systems include computing resources. For example, cloud computing systems may include servers, network storage devices, and other information technology (IT) services. Cloud computing systems include proprietary interfaces to access their respective computing resources.

SUMMARY

According to the present invention, disadvantages and problems associated with previous techniques for managing cloud computing systems may be reduced or eliminated.

In certain embodiments, a method for managing cloud computing systems includes establishing a connection between a cloud computing interface and cloud computing systems. Each of the cloud computing systems includes computing resources accessible by a proprietary interface. The cloud computing interface includes object methods that abstract the proprietary interface of each of the cloud computing systems. The method further includes receiving a request to perform an operation on one or more of the cloud computing systems. The method further includes provisioning at least one object method to implement the request.

Certain embodiments of the present invention may provide one or more technical advantages. Conventional cloud computing systems include computing resources and each provider may provide access to the computing resources in a slightly different way. Similar to other emerging technologies, providers of cloud computing systems have created proprietary interfaces to these technologies. Customers may select a particular cloud computing system to avoid dealing with inconsistent and different interfaces and, therefore, are limited to only the capabilities provided by the chosen cloud computing system. According to certain embodiments of the present invention, a cloud computing interface addresses these challenges by providing a uniform means for discovery, monitoring, and management of such environments. The cloud computing interface provides an abstraction layer for the cloud computing systems. The abstraction layer provides a standard communication interface to the cloud computing systems. As a result, certain embodiments of the present invention provide a uniform interface to these cloud computing systems so that they can be used, monitored, and managed in a uniform manner regardless of environment or resources provided. Thus, the possibilities for customers to use cloud computing systems may be expanded and the total cost of ownership may be reduced.

Certain embodiments of the present invention may include some, all, or none of the above advantages. One or more other technical advantages may be readily apparent to those skilled in the art from the figures, descriptions, and claims included herein. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:

FIG. 1 illustrates an example system for managing cloud computing systems, according to certain embodiments of the present invention;

FIG. 2 illustrates example details of the cloud computing interface of FIG. 1, according to certain embodiments of the present invention;

FIG. 3 illustrates one embodiment of an example display that may be generated by the cloud computing interface of FIGS. 1 and 2 to allow a user to add a resource, according to certain embodiments of the present invention;

FIG. 4 illustrates one embodiment of an example display that may be generated by the cloud computing interface of FIGS. 1 and 2 to allow a user to select a machine image, according to certain embodiments of the present invention;

FIG. 5 illustrates one embodiment of an example display that may be generated by the cloud computing interface of FIGS. 1 and 2 to allow a user to display a resource summary, according to certain embodiments of the present invention;

FIG. 6 illustrates one embodiment of an example display that may be generated by the cloud computing interface of FIGS. 1 and 2 to allow a user to configure a resource profile, according to certain embodiments of the present invention;

FIG. 7 illustrates one embodiment of an example display that may be generated by the cloud computing interface of FIGS. 1 and 2 to allow a user to configure resource components, according to certain embodiments of the present invention;

FIG. 8 illustrates one embodiment of an example display that may be generated by the cloud computing interface of FIGS. 1 and 2 to allow a user to identify changes to resources, according to certain embodiments of the present invention; and

FIG. 9 illustrates an example method for managing cloud computing systems, according to certain embodiments of the present invention.

DESCRIPTION OF EXAMPLE EMBODIMENTS

FIG. 1 illustrates an example system 100 for managing cloud computing systems, according to certain embodiments of the present invention. System 100 may include one or more user systems 102 and one or more administrative systems 104, one or more server systems 106, one or more cloud computing systems 108 and 110, and a network 112. Although this particular implementation of system 100 is illustrated and primarily described, the present invention contemplates any suitable implementation of system 100 according to particular needs.

In general, system 100 is operable to manage cloud computing systems. In certain embodiments, system 100 includes an abstraction layer for discovery, monitoring, and configuration of such cloud computing systems. The abstraction layer may include a standard communication interface to the cloud computing systems. As described in more detail below, the standard communication interface facilitates management of cloud computing systems in a uniform manner regardless of provider.

System 100 may include one or more user systems 102 and one or more administrative systems 104. “User system 102” and “user of user system 102” may be used interchangeably. A user of user system 102 may include, for example, a human user or a computer program or other suitable software module for automatically interacting with user system 102. Likewise, “administrative system 104” and “user of administrative system 104” may be used interchangeably. A user of administrative system 104 may include, for example, a human user or a computer program or other suitable software module for automatically interacting with administrative system 104.

Each user system 102 and administrative system 104 may include one or more computer systems at one or more locations. Each computer system may include any appropriate input devices (such as a keypad, touch screen, mouse, or other device that can accept information), output devices, mass storage media, or other suitable components for receiving, processing, storing, and communicating data. Both the input device and output device may include fixed or removable storage media such as a magnetic computer disk, CD-ROM, or other suitable media to both receive input from and provide output to a user of administrative system 104. Each computer system may include a personal computer, workstation, network computer, kiosk, wireless data port, personal data assistant (PDA), one or more processors within these or other devices, or any other suitable processing device. As an example, system 100 may include multiple distributed user systems 102 and/or administrative systems 104. User systems 102 and administrative systems 104 may be physically distributed, being in different locations geographically remote from each other and from the other components of system 100, or logically distributed, being at approximately the same location as other user systems 102 and administrative systems 104 and the other components of system 100. For simplicity, the one or more user systems 102 and administrative systems 104 of system 100 are referred to throughout this description primarily in the singular. Although user system 102 and administrative system 104 are illustrated and primarily described as being separate, it is understood that the computer systems and the functionality associated with user system 102 and administrative system 104 may be combined or separated in any suitable manner.

System 100 may include one or more server systems 106, referred to primarily in the singular throughout the remainder of this description. Server system 106 may include one or more electronic computing devices operable to receive, transmit, process, and store data associated with system 100. For example, server system 106 may include one or more general-purpose PCs, Macintoshes, workstations, Unix-based computers, server computers, one or more server pools, or any other suitable devices. In certain embodiments, server system 106 includes a web server. In short, server system 106 may include any suitable combination of software, firmware, and hardware. Although a single server system 106 is illustrated, the present invention contemplates system 100 including any suitable number of server systems 106. Moreover, although referred to as a “server system,” the present invention contemplates server system 106 comprising any suitable type of processing device or devices.

Server system 106 may be communicatively coupled to cloud computing systems 108 and 110 via network 112. Although not illustrated, user system 102 and administrative system 104 may be communicatively coupled to one another as well as to server system 106 via network 112. Network 112 facilitates wireless or wireline communication. Network 112 may communicate, for example, IP packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, voice, video, data, and other suitable information between network addresses. Network 112 may include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of the global computer network known as the Internet, and/or any other communication system or systems at one or more locations.

Server system 106 may include a processing module 114 and a memory module 116. Processing module 114 may include one or more microprocessors, controllers, or any other suitable computing devices or resources. Processing module 114 may work, either alone or with other components of system 100, to provide a portion or all of the functionality of system 100 described herein. Memory module 116 may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable memory component. Although a single server system 106 is illustrated, the present invention contemplates system 100 including any suitable number of server systems 106. Moreover, although referred to as a “server system,” the present invention contemplates server system 106 comprising any suitable type of processing device or devices.

System 100 may include one or more cloud computing systems 108 and 110. Cloud computing systems 108 and 110 may include one or more electronic computing devices operable to receive, transmit, process, and store data associated with system 100. For example, cloud computing systems 108 and 110 may include one or more general-purpose PCs, Macintoshes, workstations, Unix-based computers, server computers, one or more server pools, or any other suitable devices. In short, cloud computing systems 108 and 110 may include any suitable combination of software, firmware, and hardware. It should be noted that although two cloud computing systems 108 and 110 are illustrated, any suitable number of cloud computing systems may be included in system 100. In addition, there may be multiple groups of cloud computing systems in system 100.

In certain embodiments, cloud computing systems 108 and 110 provide computing resources 124 and 126, respectively, to customers and charges the customers for their specific use of computing resources 124 and 126. For example, cloud computing resources 124 and 126 may include one or more virtual machines. As another example, cloud computing resources 124 and 126 may include one or more machine images. A machine image may refer to a bootable file that includes a particular configuration and operating system. As yet another example, cloud computing resources 124 and 126 may include one or more Intel x86 based servers that provide a combination of hardware and software resources.

In certain embodiments, computing resources 124 and 126 may be accessible by proprietary interfaces 120 and 122, respectively. In certain embodiments, interfaces 120 and 122 may be unique to their respective cloud computing systems 108 and 110. For example, interfaces 120 and 122 may each include a proprietary command-line interface (CLI) operable to receive typing commands. As another example, interfaces 120 and 122 may each include a proprietary graphical user interface (GUI) such as an online portal that includes hypertext mark-up language (HTML) pages for display and data capture. As another example, interfaces 120 and 122 may each include a proprietary data adapter to access computing resources 124 and 126. It should be noted that although two proprietary interfaces 120 and 122 are illustrated, any suitable number of proprietary interfaces may be implemented. In addition, there may be multiple groups of cloud computing systems sharing a proprietary interface.

A user of user system 102 may select a particular cloud computing system to avoid accessing different proprietary interfaces 120 and 122. For example, resources 124 and 126 of cloud computing systems 108 and 110 may include Unix-based computer resources. Cloud computing systems 108 and 110 may expose resources 124 and 126 in inconsistent and different ways through proprietary interfaces 120 and 122. A user of user system 102 may select a particular cloud computing system and interface, such as cloud computing system 108 and interface 120, to avoid dealing with different interfaces, such as interface 122. Thus, the user may be limited to the Unix-based computers provided by the cloud computing system selected, and therefore the user may not able to take advantage of the Unix-based computers of other cloud computing systems, such as cloud computing system 110.

In certain embodiments, server system 106 may include a cloud computing interface 118. Cloud computing interface 118 may refer to any suitable hardware and/or software operable to abstract proprietary interfaces 120 and 122. In certain embodiments, abstracting proprietary interfaces may refer to displaying the functionality of the proprietary interfaces. In certain embodiments, abstracting proprietary interfaces may refer to translating a request provided by a user into proprietary commands to implement the request at one or more cloud computing systems. As described in more detail below, by abstracting proprietary interfaces 120 and 122, cloud computing interface 118 provides an abstraction layer for cloud computing systems 108 and 110 that hides the different implementation details of the interfaces 120 and 122 to a user and may display the functionality of interfaces 120 and 122 through a uniform interface.

Cloud computing interface 118 includes object methods that abstract proprietary interfaces 120 and 122, in certain embodiments. An object method may refer to any object-oriented functionality. For example, an object method may refer to an application-specific program, a data structure, a class, a web service, and/or any other suitable object-oriented functionality according to particular needs.

Cloud computing interface 118 may receive a request to perform an operation on one or more of the plurality of cloud computing systems and may provision an object method to implement the operation, in certain embodiments. For example, cloud computing interface 118 may receive a request from a user to add a new a virtual machine to cloud computing system 108. Cloud computing interface 118 may provision an object method that translates the request into proprietary commands to implement the request to add a new virtual machine at cloud computing system 108. Thus, cloud computing interface 118 may receive a request to perform an operation on one or more of the plurality of cloud computing systems and an object method may implement the operation.

In certain embodiments, the object methods may be dynamically configured. For example, as described above, proprietary interfaces 120 and 122 may each include a proprietary data adapter to access computing resources 124 and 126. The object methods may be dynamically configured to communicate with the data adapters. As another example, the object methods may be dynamically configured using Extensible Markup Language (XML) files that describe the functionality and communication protocols of proprietary interfaces 120 and 122. By dynamically configuring the object methods, object methods may be rapidly provisioned to support new proprietary interfaces and new functionality within existing proprietary interfaces.

In certain embodiments, a secure connection may be established between cloud computing interface 118 and cloud computing systems 108 and 110 over network 112. For example, a secure Hypertext Transfer Protocol (HTTP) connection may be established between cloud computing interface 118 and cloud computing systems 108 and 110. A secure HTTP protocol refers to a protocol that provides the ability for secure transactions to take place over network 112. In alternative networks, any suitable data communications protocol may be used to establish a secure connection. Additional details of example embodiments of cloud computing interface 118 are discussed below with reference to FIG. 2.

FIG. 2 illustrates example details of cloud computing interface 118 of FIG. 1, according to certain embodiments of the present invention. As described above, cloud computing interface 118 includes object methods that abstract proprietary interfaces 120 and 122 and may be provisioned to implement operations. In certain embodiments, the object methods may be included in one or more components. In the illustrated embodiment, cloud computing interface 118 includes a display component 130, an imaging component 132, and a change and configurations component 134. As described in more detail below, each of these components may include certain object methods that implement certain functionality associated with managing cloud computing systems 108 and 110. It should be noted that although three components 130, 132, and 134 are illustrated, any suitable number of components may be included in cloud computing interface 118.

Display component 130 may abstract the interfaces of cloud computing systems 108 and 110 and generate a display of the functionality of the interfaces, in certain embodiments. For example, display component 130 may include an object method that may display applications and/or servers provided by interfaces of cloud computing systems 108 and 110. As another example, display component 130 may include an object method that may discover at least one computing resource in cloud computing systems 108 and 110. As another example, display component 130 may include an object method that may list features and/or services provided by interfaces of cloud computing systems 108 and 110.

In certain embodiments, cloud computing imaging component 132 may manage resources for cloud computing systems 108 and 110. For example, imaging component 132 may include an object method that may add machine images to cloud computing systems 108 and 110. As another example, imaging component 132 may include an object method that may display machine images provided by cloud computing systems 108 and 110. As another example, imaging component 132 may include an object method that may instantiate a new server from a machine image.

Cloud computing change and configurations component 134 may configure cloud computing systems 108 and 110, in certain embodiments. For example, change and configurations component 134 may include an object method that may determine the resource consumption of applications and/or servers. As another example, change and configurations component 134 may include an object method that may retrieve the cost associated with operating applications and/or servers. As another example, change and configurations component 134 may include an object method that may determine the resource consumption of selected applications and/or servers. As another example, change and configurations component 134 may include an object method that may delete existing applications and/or servers.

FIGS. 3-8 include embodiments of example displays that may be generated by cloud computing interface 118 of FIGS. 1 and 2. Although certain functionality is illustrated and described below in a particular way, it should be understood that the functionality may be provided and displayed in any suitable fashion.

FIG. 3 illustrates one embodiment of an example display 302 that may be generated by cloud computing interface 118 of FIGS. 1 and 2 to allow a user to add a resource, according to certain embodiments of the present invention. As shown in the illustrated embodiment, display 302 includes a window 304 with a managed resource area and a cloud computing systems area. The managed resource area includes a hierarchical listing of managed resources including cloud computing system A and cloud computing system B. Cloud computing system A includes two resources resource_alpha.systema.com and resource_beta.systema.com. In certain embodiments, cloud computing system A and cloud computing system B may include different proprietary interfaces unique to their respective cloud computing systems. Display 302 facilitates management of cloud computing system A and cloud computing system B by abstracting the proprietary interfaces of cloud computing system A and cloud computing system B and displaying the resources and of cloud computing system A and cloud computing system B in a uniform manner.

In certain embodiments, display 302 includes several menu tabs for managing the cloud computing systems listed in the managed resource area. In the illustrated embodiment, a summary tab, an imaging tab, a software tab, and an add resource tab are displayed for a particular window and, as indicated by reference number 306, the add resource tab is selected. The add resource tab includes several selectable buttons to add a resource to a particular cloud computing system. For example, button 308 may be selected to add a new virtual machine to a particular cloud computing system. As another example, button 310 may be selected to add a new SUN SOLARIS system to a particular cloud computing system. As yet another example, button 312 may be selected to add a new WINDOWS/LINUX system to a particular cloud computing system. As yet another example, button 314 may be selected to add a new AIX system to a particular cloud computing system. As yet another example, button 316 may be selected to add a new logical partition to a particular cloud computing system. As yet another example, button 318 may be selected to add a new machine image to a particular cloud computing system.

In certain embodiments, a user may select a particular button, such as button 318, by selecting a particular region of display 302 (as indicated by reference number 320) and cloud computing interface 118 may provision an object method to implement the request. In the illustrated embodiment, selecting the particular region of display 302 indicated by reference number 320 may generate a request to add a new machine image. Cloud computing interface 118 may receive the request to add a new machine image and may provision an object method to implement the request. The object method may translate the request into proprietary commands to implement the request.

In certain embodiments, selecting a particular region of display 302 (as indicated by reference number 320) may result in display 302 displaying a new window, such as a new window associated with selecting a particular machine image to add. An example embodiment of selecting a machine image is described in more detail with reference to FIG. 4.

FIG. 4 illustrates one embodiment of an example display that may be generated by cloud computing interface 118 of FIGS. 1 and 2 to allow a user to select a particular machine image to add, according to certain embodiments of the present invention. As indicated by reference number 402 in the illustrated embodiment, the add resource tab is selected and window 404 includes a listing of machine images that may be added. In the illustrated embodiment, window 404 includes the machine images that may be selected, and the machine images are arranged by an ID field 406 and a Manifest description field 408. ID field 406 includes a unique identifier of each of the machine images. Manifest description field 408 includes a reference to a file that includes a description of the machine image. A particular machine image may be selected (as indicated by reference number 410) and a new window 412 may be displayed that includes additional information regarding the machine image selected.

In certain embodiments, a user may select a particular machine image to add by selecting a particular region of window 404 (as indicated by reference number 410) and cloud computing interface 118 may provision an object method to implement the request. In the illustrated embodiment, selecting the particular region of window 404 as indicated by reference number 410 may generate a request to add a new machine image. Cloud computing interface 118 may receive the request to add a new machine image and may provision an object method to implement the request. The object method may translate the request into proprietary commands to implement the request.

FIG. 5 illustrates one embodiment of an example display that may be generated by cloud computing interface 118 of FIGS. 1 and 2 to allow a user to display a resource summary, according to certain embodiments of the present invention. As illustrated in window 502 in the illustrated embodiment, a summary tab is selected and resource_alpha.systema.com of cloud computing system A is selected (as indicated by reference number 504). A summary of resource_alpha.systema.com and a chart of CPU utilization for resource_alpha.systema.com are displayed. As shown in the illustrated embodiment, the current utilization of resource_alpha.systema.com is displayed as 50%.

In certain embodiments, a view of the summary may be customized according to one or more buttons and selection boxes and cloud computing interface 118 may provision an object method to implement the request. For example, a view of the summary may be customized by time selection criteria including 30 minutes (30 m), 1 hour (1 h), 6 hours (6 h), 12 hours (12 h), 1 day (1 d), 1 week (1 wk), 2 weeks (2 wks), and 1 month (1 mo). As another example, a view of the summary may be customized by auto scale and auto refresh selection boxes.

In certain embodiments, a user may select particular criteria by selecting a particular region of window 502 and cloud computing interface 118 may provision an object method to implement the request. For example, a user may select 6 hours (6 h) from the time selection criteria to change the display. Cloud computing interface 118 receives the request and provisions an object method to request data to display the updated summary of and resource_alpha.systema.com.

FIG. 6 illustrates one embodiment of an example display that may be generated by cloud computing interface 118 of FIGS. 1 and 2 to allow a user to configure a resource profile, according to certain embodiments of the present invention. As indicated by reference number 602 in the illustrated embodiment, a details tab is selected and a profile of resource_alpha.systema.com of cloud computing system A is displayed. In the illustrated embodiment, the profile includes system information fields for resource_alpha.systema.com including an Operating System (OS) Name field and an Internet Protocol (IP) Address field.

In certain embodiments, a user may update the profile by editing a particular field and cloud computing interface 118 may provision an object method to implement the request. For example, a user may update the IP Address field to include a different value for resource_alpha.systema.com. Cloud computing interface 118 receives the request and provisions an object method to update the IP address of resource_alpha.systema.com at cloud computing system A.

FIG. 7 illustrates one embodiment of an example display that may be generated by cloud computing interface 118 of FIGS. 1 and 2 to allow a user to configure resource components, according to certain embodiments of the present invention. As indicated by reference number 702 in the illustrated embodiment, a components tab is selected and a listing of components installed at resource_alpha.systema.com is displayed. In the illustrated embodiment, the listing of components is arranged by a Name field, a Version field, a Category field, and a Qualifier field. In certain embodiments, a user may configure the resource components by editing a particular field and cloud computing interface 118 may provision an object method to implement the request. For example, a user may delete a particular component from resource_alpha.systema.com. Cloud computing interface 118 receives the request and provisions an object method to delete the component from resource_alpha.systema.com at cloud computing system A.

FIG. 8 illustrates one embodiment of an example display that may be generated by cloud computing interface 118 of FIGS. 1 and 2 to allow a user to identify changes to resources, according to certain embodiments of the present invention. As indicated by reference number 802 in the illustrated embodiment, a changes tab is selected and a listing of detected changes at resource_beta.systema.com is displayed.

In certain embodiments, a user may request a change detection analysis to identify changes to resources and cloud computing interface 118 may provision an object method to implement the request. For example, a user may compare a current configuration of components against a baseline configuration of components. Cloud computing interface 118 may receive the request to perform a change detection analysis and may provision an object method to implement the request. In the illustrated embodiment, resource_beta.systema.com is compared against a baseline configuration and the comparison results list an Apache2 HTTP Server (UNIX)(/) as a detected change to resource_beta.systema.com.

FIG. 9 illustrates an example method for managing cloud computing systems, according to certain embodiments of the present invention. The method begins at step 902 where a connection is established between a cloud computing interface and cloud computing systems. Each of the cloud computing systems include one or more computing resources accessible by a proprietary interface. The cloud computing interface includes a plurality of object methods that abstract the proprietary interface of each of the cloud computing systems. At step 904, a request to perform an operation on one or more of the plurality of cloud computing systems is received. At step 906, at least one object method is provisioned from the cloud computing interface to implement the request.

It should be understood that some of the steps illustrated in FIG. 9 may be combined, modified or deleted where appropriate, and additional steps may also be added to the flowchart. Additionally, as indicated above, steps may be performed in any suitable order without departing from the scope of the invention.

Although the present invention has been described with several embodiments, diverse changes, substitutions, variations, alterations, and modifications may be suggested to one skilled in the art, and it is intended that the invention encompass all such changes, substitutions, variations, alterations, and modifications as fall within the spirit and scope of the appended claims. 

1. A method for managing cloud computing systems, comprising: establishing a connection between a cloud computing interface and a plurality of cloud computing systems, each of the plurality of cloud computing systems comprising one or more computing resources accessible by a proprietary interface, the cloud computing interface comprising a plurality of object methods that abstract the proprietary interface of each of the plurality of cloud computing systems; receiving a request to perform an operation on one or more of the plurality of cloud computing systems; and provisioning, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request.
 2. The method of claim 1, wherein establishing a connection between a cloud computing interface and a plurality of cloud computing systems comprises establishing a secure Hypertext Transfer Protocol (HTTP) connection between the cloud computing interface and the plurality of cloud computing systems.
 3. The method of claim 1, wherein the one or more computing resources comprise one or more of the following: one or more virtual machines; and one or more machine images.
 4. The method of claim 1, wherein provisioning, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request comprises provisioning at least one object method of the plurality of object methods to display a resource summary.
 5. The method of claim 1, wherein provisioning, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request comprises provisioning at least one object method of the plurality of object methods to discover at least one computing resource in the plurality of cloud computing systems.
 6. The method of claim 1, wherein provisioning, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request comprises provisioning at least one object method of the plurality of object methods to configure one or more of the plurality of cloud computing systems.
 7. The method of claim 1, wherein provisioning, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request comprises provisioning at least one object method of the plurality of object methods to add a machine image.
 8. A system for managing cloud computing systems, comprising: one or more processing units operable to: establish a connection between a cloud computing interface and a plurality of cloud computing systems, each of the plurality of cloud computing systems comprising one or more computing resources accessible by a proprietary interface, the cloud computing interface comprising a plurality of object methods that abstract the proprietary interface of each of the plurality of cloud computing systems; receive a request to perform an operation on one or more of the plurality of cloud computing systems; and provision, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request.
 9. The system of claim 8, wherein the one or more processing units are operable to establish a secure Hypertext Transfer Protocol (HTTP) connection between the cloud computing interface and the plurality of cloud computing systems.
 10. The system of claim 8, wherein the one or more computing resources comprise one or more of the following: one or more virtual machines; and one or more machine images.
 11. The system of claim 8, wherein the at least one object method of the plurality of object methods is operable to display a resource summary.
 12. The system of claim 8, wherein the at least one object method of the plurality of object methods is operable to discover at least one computing resource in the plurality of cloud computing systems.
 13. The system of claim 8, wherein the at least one object method of the plurality of object methods is operable to configure one or more of the plurality of cloud computing systems.
 14. The system of claim 8, wherein the at least one object method of the plurality of object methods is operable to add a machine image.
 15. Software for managing cloud computing systems, the software embodied in a computer-readable medium and when executed operable to: establish a connection between a cloud computing interface and a plurality of cloud computing systems, each of the plurality of cloud computing systems comprising one or more computing resources accessible by a proprietary interface, the cloud computing interface comprising a plurality of object methods that abstract the proprietary interface of each of the plurality of cloud computing systems; receive a request to perform an operation on one or more of the plurality of cloud computing systems; and provision, from the cloud computing interface, at least one object method of the plurality of object methods to implement the request.
 16. The software of claim 15, operable to establish a secure Hypertext Transfer Protocol (HTTP) connection between the cloud computing interface and the plurality of cloud computing systems.
 17. The software of claim 15, wherein the one or more computing resources comprise one or more of the following: one or more virtual machines; and one or more machine images.
 18. The software of claim 15, wherein the at least one object method of the plurality of object methods is operable to display a resource summary.
 19. The software of claim 15, wherein the at least one object method of the plurality of object methods is operable to discover at least one computing resource in the plurality of cloud computing systems.
 20. The software of claim 15, wherein the at least one object method of the plurality of object methods is operable to configure one or more of the plurality of cloud computing systems. 